#pragma once

#include "Joint.h"

class Skeleton
{
public:
	Skeleton(void);
	~Skeleton(void);

	int getId(){ 
		return this->id;
	}
	
	void setId(int id){ 
		this->id = id;
	}

	Joint * getHead() {
		return this->head;
	}

	Joint * getNeck() {
		return this->neck;
	}

	Joint * getTorso() {
		return this->torso;
	}

	Joint * getRCollar() {
		return this->r_collar;
	}

	Joint * getRShoulder() {
		return this->r_shoulder;
	}

	Joint * getRElbow() {
		return this->r_elbow;
	}

	Joint * getRWrist() {
		return this->r_wrist; // #not working yet
	}

	Joint * getRHand() {
		return this->r_hand; 
	}

	Joint * getRFinger() {
		return this->r_finger; // #not working yet
	}

	Joint * getLCollar() {
		return this->l_collar; // #not working yet
	}

	Joint * getLShoulder() {
		return this->l_shoulder;
	}

	Joint * getLElbow() {
		return this->l_elbow;
	}

	Joint * getLWrist() {
		return this->l_wrist; // #not working yet
	}

	Joint * getLHand() {
		return this->l_hand;
	}

	Joint * getLFinger() {
		return this->l_finger; // #not working yet
	}

	Joint * getRHip() {
		return this->r_hip;
	}

	Joint * getRKnee() {
		return this->r_knee;
	}

	Joint * getRAnkle() {
		return this->r_ankle;
	}

	Joint * getRFoot() {
		return this->r_foot;
	}

	Joint * getLHip() {
		return this->l_hip;
	}

	Joint * getLKnee() {
		return this->l_knee;
	}

	Joint * getLAnkle() {
		return this->l_ankle;
	}

	Joint * getLFoot() {
		return this->l_foot;
	}

	void setActive(bool active) {
		this->active = active;
	}

	bool isActive() {
		return this->active;
	}

	Joint * getWaist() {
		return this->waist;
	}

	void setWaist(Joint * waist) {
		this->waist = waist;
	}

private:
	int id;
	bool active;

	Joint * head;
	Joint * neck;
	Joint * torso;

	Joint * r_collar;  // #not working yet
	Joint * r_shoulder;
	Joint * r_elbow;
	Joint * r_wrist; // #not working yet
	Joint * r_hand; 
	Joint * r_finger; // #not working yet

	Joint * l_collar; // #not working yet
	Joint * l_shoulder;
	Joint * l_elbow;
	Joint * l_wrist; // #not working yet
	Joint * l_hand;
	Joint * l_finger; // #not working yet

	Joint * r_hip;

	Joint * r_knee;
	Joint * r_ankle;
	Joint * r_foot;

	Joint * l_hip;

	Joint * l_knee;
	Joint * l_ankle;
	Joint * l_foot;

	Joint * waist;
	

};
